package com.tansun.ruledata.service;

import java.util.List;
import java.util.Map;

import javax.jws.WebParam;

import com.tansun.rule.exception.RuleInvokeException;
import com.tansun.rule.utils.MClass;
import com.tansun.ruledata.data.entity.DeployRuleLogs;

public interface RuleDataBusinessService {

	/**
	 * 服务调用入口-测算服务
	 * @param 
	 * @return
	 */
	public String ruleEngineService(String projectCode,String enterPoint,String inputType,String businessInput);
	/**
	 * 服务调用入口-测算服务
	 * @param 
	 * @return
	 */
	public Map<String, Object> ruleEngineService(String projectCode,String enterPoint,Map<String, Object> busiInput);
	public Map<String, Object> ruleEngineService(String projectCode,String enterPoint,Map<String, Object> busiInput,String uuidStr);
	/**
	 * 服务调用入口-已部署规则执行服务
	 * @param 
	 * @return
	 */
	public Map<String, Object> ruleEngineService_ruleExe(String projectCode ,String enterPoint ,Map<String, Object> busiInput);
	/**
	 * 服务调用入口-已部署规则执行服务
	 * @param 
	 * @return
	 */
	public Map<String, Object> ruleEngineService_ruleExe(String projectCode ,String enterPoint ,Map<String, Object> busiInput,String uuidStr);
	
	/**
    * 规则流变量信息	
    * @param ruleProjectName 项目代码
    * @param enterPoint 入口点
    * @return
    */
   public  String   ruleFlowParamInfo(String projectCode, String enterPoint );
   /**
    * 加载部署的规则
    * @param projectCode
    * @param enterPointer
    */
   public void compileRuleData(String projectCode,String enterPointer)throws Exception;
   /**
    * 规则项目调用参数信息
    * @return
    */
   public  String   ruleProjectParamInfo();
   /**
    * 数据组件变量
    * @param ruleProjectName
    * @param enterPoint
    * @return
    */
   public  String   ruleDatacommponetParamInfo(String projectCode, String enterPoint );
	/**
	 * 初始化默认值并补全参数信息
	 * @param projectCode
	 * @param enterPoint
	 * @return
	 */
   public Map<String, Object> initRuleParamMap(String projectCode,String enterPoint,Map<String, Object> businessMap);
   /**
    * 规则执行日志查询接口
 * @param projectCode 
    * @param page
    * @param ruleLogs
    * @return
    */
   public String ruleExecutionLogList(String projectCode);
   public String ruleExecutionLogDetails(String  projectCode,String ruleFlowId);
   
}
